#ifndef SNMPAPI_H
#define SNMPAPI_H
#include"SnmpOidApi.h"
//逐步淘汰
//#define SAFE_FREE_VARBIND(x) do{if(x){snmp_free_varbind(x);x=NULL;}}while(0)
netsnmp_variable_list*SAFE_FREE_VARBIND(netsnmp_variable_list* &var);
//OID比较
int OID_COMPARE(SnmpOidInfo oidinfo,netsnmp_variable_list*var,int checkfull=0);
//-1有问题 0正常
int CheckVars(const char*IP,netsnmp_variable_list *vars);

void*OpenSnmp(const char*IP);
void*CloseSnmp(void*session);
//改变Snmp团体号
void ChangeSnmpSpecific(void*session,const char*Specific);
//改变Snmp超时间隔ms,重试次数
//-1为恢复默认
void ChangeSnmpTimeout(void*session,int timeoutms,int retries);
void ShowSnmpVersion();
//初始化Snmp库
void InitNetSnmp();
//卸载Snmp库
void UnInitNetSnmp();
//获取Snmp会话IP
const char*GetSnmpPeerName(void*session);
//更新指定IP的团体号
void UpdateSnmpCommunity(const char*IP,const char*community);
//获取团体好
MAPSTRINGLIST  GetSnmpCommunity();
//获取指定IP团体号
void GetSnmpCommunity(const char*IP,char*community,int size);
//改变PeerName未通过
//void ChangeSnmpPeerName(void*session,const char*IP);
#endif
